;;; GNU Guix --- Functional package management for GNU
;;;
;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
;;;
;;; This file is not part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (guixrus packages jrnlc)
  #:use-module (guix build-system gnu)
  #:use-module (guix gexp)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (gnu packages crypto)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages web)
  #:use-module ((guixrus contributors) #:prefix contributor:))

(define-public jrnlc
  (package
    (name "jrnlc")
    (version "2022.a")
    (source
      (origin
        (method git-fetch)
        (uri (git-reference
               (url "https://github.com/thexhr/jrnlc")
               (commit version)))
        (file-name (git-file-name name version))
        (sha256
          (base32 "10j4iyac41ndr9yic7vdkajf4kvvwzbd5jxpjypzybcygj9jq8h6"))))
    (build-system gnu-build-system)
    (arguments
      `(#:make-flags ,#~(list (string-append "PREFIX=" #$output)
                              (string-append "CC=" #$(cc-for-target)))
        #:tests? #f ; no check target
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-install-invocations
            (lambda _
              (substitute* "Makefile"
                (("-o root") ""))))
          (delete 'configure)
          (add-before 'install 'create-output-dirs
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (mkdir-p (string-append out "/bin"))
                (mkdir-p (string-append out "/man"))))))))
    (inputs (list json-c libsodium))
    (native-inputs (list pkg-config))
    (home-page "https://github.com/thexhr/jrnlc")
    (synopsis "Opinionated command-line journal")
    (description "@code{jrnlc} is a opinionated command line application to take notes
in a journal similar to @code{jrnl}.  You can take notes by entering them on the command
line or providing them from a file to @code{jrnlc}'s standard input.  It supports full
encryption of the journal, so that your notes remain secret.")
    (license license:isc)
    (properties `((maintainers . (,contributor:unmatched-paren))))))
